/**
 * 商品管理模块
 */
(function(window) {
    'use strict';
    
    // 全局商品对象，用于缓存当前扫描的商品信息
    let product = {};
    window.product = product;
    
    /**
     * 验证EAN-13条码
     */
    function validateEAN13(barcode) {
        if (!/^\d{13}$/.test(barcode)) {
            return false;
        }
        
        let sum = 0;
        for (let i = 0; i < 12; i++) {
            const digit = parseInt(barcode[i]);
            sum += (i % 2 === 1) ? digit * 3 : digit;
        }
        
        const checkDigit = (10 - (sum % 10)) % 10;
        return checkDigit === parseInt(barcode[12]);
    }
    
    /**
     * 根据条码获取商品信息
     */
    function getProductByBarcode(barcode) {
        return $.ajax({
            url: `/api/products/${barcode}`,
            type: 'GET',
            dataType: 'json'
        });
    }
    
    /**
     * 添加商品
     */
    function addProduct(productData) {
        return $.ajax({
            url: '/api/products',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(productData)
        });
    }
    
    /**
     * 更新商品
     */
    function updateProduct(barcode, productData) {
        return $.ajax({
            url: `/api/products/${barcode}`,
            type: 'PUT',
            contentType: 'application/json',
            data: JSON.stringify(productData)
        });
    }
    
    /**
     * 删除商品
     */
    function deleteProduct(barcode) {
        return $.ajax({
            url: `/api/products/${barcode}`,
            type: 'DELETE'
        });
    }
    
    /**
     * 搜索商品
     */
    function searchProducts(keyword) {
        return $.ajax({
            url: '/search',
            type: 'POST',
            data: { keyword: keyword },
            dataType: 'json'
        });
    }
    
    /**
     * 获取库存警告商品（支持分页）
     */
    function getStockWarnings(page = 1, page_size = 10) {
        return $.ajax({
            url: '/api/stock/warning',
            type: 'GET',
            dataType: 'json',
            data: { page: page, page_size: page_size }
        });
    }
    
    /**
     * 获取近效期警告商品
     */
    function getExpiryWarnings(page = 1, page_size = 10) {
        return $.ajax({
            url: '/api/expiry/warning',
            type: 'GET',
            dataType: 'json',
            data: { page: page, page_size: page_size }
        });
    }
    
    // 暴露API
    window.ProductModule = {
        validateEAN13: validateEAN13,
        getProductByBarcode: getProductByBarcode,
        addProduct: addProduct,
        updateProduct: updateProduct,
        deleteProduct: deleteProduct,
        searchProducts: searchProducts,
        getStockWarnings: getStockWarnings,
        getExpiryWarnings: getExpiryWarnings
    };
    
    // 兼容旧代码
    window.validateEAN13 = validateEAN13;
    
})(window);

